package cn.tedu.staticx;

public class StaticDemo1 {
    public static void main(String[] args) {
//        Student stu = new Student();
//        stu.method();
//        System.out.println("hello");
//        Person p = new Person();
//        Person p1 = new Person();
//        System.out.println(Person.eyeNums);
//        Person.method();
        System.out.println(Person.class);//反射
    }
}
class Person{
    static int eyeNums = 2;
    //静态代码块
    static{
       // static int num = 5;//不能定义静态属性
        System.out.println("静态代码块~");
    }
    //在构造代码块 构造方法 普通方法中能否使用静态变量？-- 可以
    {
//        static int nums = 4;
        System.out.println(eyeNums);
    }
    public Person(){
//        static int nums = 4;
        System.out.println(eyeNums);
    }
    public static void method(){
//        eat();
//        new Person().eat();//对象什么时候创建取决于method方法什么时候执行
        //静态方法能否定义静态变量
//        static int num = 5;//静态属性需要等到method方法执行时才能创建
        System.out.println("method 无参方法");
    }
    public static void method(int num){
        System.out.println("method 有参方法");
    }
    public void eat(){
//        static int nums = 4;
        System.out.println(eyeNums);
    }
}
//class Student extends Person{
////    @Override
//    public static void method(){
//        System.out.println("Student method方法");
//    }
//}

